﻿// Copyright 2007-2008 Rory Plaire (codekaizen@gmail.com)

using System;

namespace NPack.Interfaces
{
    public interface IQRDecomposition<T, TMatrix> : IFactorization<T, TMatrix>
        where T : IEquatable<T>, IComparable<T>, IComputable<T>, IConvertible
        where TMatrix : IMatrix<T>, IEquatable<TMatrix>, IComparable<TMatrix>, IComputable<TMatrix>
	{
        Boolean IsFullRank { get; }
		TMatrix Q { get; }
        TMatrix Solve(TMatrix value);
        TMatrix R { get; }
	}
}
